#ifndef __SDL_MUSIC_H__
#define __SDL_MUSIC_H__

#include "SDL/SDL_mixer.h"
#include "sdlMusicMonitor.h"
#include <string>

class sdlMusic{
private:
    Mix_Music* music;
    static unsigned counter;
    static sdlMusicMonitor* monitor;
public:
	sdlMusic();
	//Construye la clase y carga la música dede el path (string)
	explicit sdlMusic(std::string);
	//Carga la música dede el path (string)
	bool load(std::string);
	//Devuelve true si se está reproduciendo la música
	bool isPlaying();
	//Reproduce la música. Devuelve true si pudo hacerlo.
	bool play();
	//Devuelve true si la música está pausada
	bool isPaused();
	//Pausa la música
	void pause();
	//Saca la pausa de la música
	void resume();
	//Para la música
	void stop();
	//Recibe un int con los milisegundos y se para la música
	//pero desvaneciendose en esa cantidad de milisegundos
	bool fadeOut(int);
	//Cambia el estado de la música, si se está reproduciendo se pausa
	//y si está pausada se saca la pausa.
	void changeState();
	~sdlMusic();
private:
	void init();
};


#endif // __SDL_MUSIC_H__
